/*
 * @Author: 一路向阳 tt_sunzhenfeng@163.com
 * @Date: 2024-02-22 14:10:25
 * @LastEditors: 一路向阳 tt_sunzhenfeng@163.com
 * @LastEditTime: 2024-02-22 14:15:49
 * @FilePath: \utils_ts\20.类class.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
export {};

// 定义类的同时，相当于定义了同名称的接口
class Person {
  //  1. 定义属性前，应该先声明这个属性的类型，也可以同时设置默认值
  myName: string = '默认值';

  constructor(name: string) {
    this.myName = name;
  }
  getName() {
    return this.myName;
  }
}

const p = new Person('张三');
console.log(p.getName());
console.log(p.myName);

// 以上这个类，相当于下面这个接口
// interface IPerson {
//   myName: string;
//   getName(): string;
// }

const obj: Person = {
  myName: '李四',
  getName() {
    return this.myName;
  },
};